/*
* Copyright 2010 Competentum group
*
* Licensed under the GNU General Public License, Version 3.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.gnu.org/licenses/gpl.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.competentum.ui
{
	import com.competentum.windows.ScopesManager;
	
	import flash.events.Event;
	import flash.events.MouseEvent;

	public class ButtonWithShortcut extends IconedButton
	{
		private var needUpdateShortcut:Boolean;
		private var _shortcut:Shortcut;
		public function get shortcut():Shortcut
		{
			return _shortcut;
		}
		public function set shortcut(value:Shortcut):void
		{
			_shortcut = value;
			needUpdateShortcut = true;
			invalidateProperties();
		}
		
		public function ButtonWithShortcut()
		{
			super();
			addEventListener(MouseEvent.CLICK, onClick);
		}
		
		override protected function commitProperties():void
		{
			super.commitProperties();
			
			if (needUpdateShortcut)
			{
				needUpdateShortcut = false;
				if (_shortcut)
				{
					label = _shortcut.title;
					toolTip = _shortcut.asText();
				}
			}
		}
		
		private function onClick(event:MouseEvent = null):void
		{
			if (_shortcut)
			{
				Shortcuts.invokeActions(_shortcut);
			}
		}
	}
}